/******************************************************************************* * Copyright (c) 2007 Business Objects Software Limited and others. * All rights reserved. * This file is made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Business Objects Software Limited - initial API and implementation *******************************************************************************/ /* * BooleanEditor.java * Created: 22-Feb-07 * By: Rick Cameron */ package org.openquark.cal.eclipse.ui.metadataeditor; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.forms.widgets.FormToolkit; /** * @author Rick Cameron * */ final class BooleanEditor extends EditorComponent { private Composite editorPanel; private Button yesButton; private Button noButton; private final SelectionListener selectionListener = new SelectionListener () { public void widgetSelected (SelectionEvent arg0) { editorChanged (); } public void widgetDefaultSelected (SelectionEvent arg0) { editorChanged (); } }; /** * Constructor BooleanEditor * * @param editorSection * @param key * @param title * @param description */ public BooleanEditor (EditorSection editorSection, String key, String title, String description) { super (editorSection, key, title, description); } /** * @see org.openquark.cal.eclipse.ui.metadataeditor.EditorComponent#createEditorComponent(org.eclipse.swt.widgets.Composite, org.eclipse.ui.forms.widgets.FormToolkit) */ @Override Control createEditorComponent (Composite parent, FormToolkit formToolkit) { editorPanel = formToolkit.createComposite (parent); editorPanel.setLayout (new RowLayout (SWT.HORIZONTAL)); yesButton = formToolkit.createButton (editorPanel, MetadataEditorMessages.YesButtonLabel, SWT.RADIO); yesButton.addSelectionListener (selectionListener); noButton = formToolkit.createButton (editorPanel, MetadataEditorMessages.NoButtonLabel, SWT.RADIO); noButton.addSelectionListener (selectionListener); return editorPanel; } /** * {@inheritDoc} */ @Override public Control getEditorComponent () { return editorPanel; } /** * {@inheritDoc} */ @Override public Object getValue () { return Boolean.valueOf (yesButton.getSelection ()); } /** * {@inheritDoc} */ @Override public void setValue (Object value) { if (((Boolean)value).booleanValue ()) { yesButton.setSelection (true); } else { noButton.setSelection (true); } } }